#include "semUntil.h"

// 信号量初始化
sem_t semHasRecvCameraData;

void semInit(sem_t *sem, unsigned int val)
{
    // 初始化信号量
    if (-1 == sem_init(sem, 0, val))
    {
        LOG_ERROR("Semaphore sem_escaped_data init fail!");
        exit(-1);
    }
}

bool semWaitAndPerror(sem_t *sem)
{
    int ret = sem_wait(sem);
    if (ret != 0)
    {
        LOG_ERROR("sem_wait error, err msg: %s", strerror(errno));
        return false;
    }
    return true;
}

bool semTryWaitAndPerror(sem_t *sem)
{
    int ret = sem_trywait(sem);
    if (ret != 0)
    {
        //		LOG_DEBUG("sem_trywait error, err msg: %s", strerror(errno));
        return false;
    }
    return true;
}

bool semPostAndPerror(sem_t *sem)
{
    int ret = sem_post(sem);
    if (ret != 0)
    {
        //	LOG_ERROR("sem_post error, err msg: %s", strerror(errno));
        return false;
    }
    return true;
}
